using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("TextField")]
	public class TextField : PegUIElement
	{
		public struct PluginRect
		{
			public float x;

			public float y;

			public float width;

			public float height;
		}

		public enum KeyboardType
		{
			Default,
			ASCIICapable,
			NumbersAndPunctuation,
			URL,
			NumberPad,
			PhonePad,
			NamePhonePad,
			EmailAddress,
			DecimalPad,
			Twitter
		}

		public enum KeyboardReturnKeyType
		{
			Default,
			Go,
			Google,
			Join,
			Next,
			Route,
			Search,
			Send,
			Yahoo,
			Done,
			EmergencyCall
		}

		public Transform inputTopLeft => method_3<Transform>("inputTopLeft");

		public Transform inputBottomRight => method_3<Transform>("inputBottomRight");

		public Color textColor => method_2<Color>("textColor");

		public int maxCharacters => method_2<int>("maxCharacters");

		public bool autocorrect => method_2<bool>("autocorrect");

		public KeyboardType keyboardType => method_2<KeyboardType>("keyboardType");

		public KeyboardReturnKeyType returnKeyType => method_2<KeyboardReturnKeyType>("returnKeyType");

		public bool hideInput => method_2<bool>("hideInput");

		public bool useNativeKeyboard => method_2<bool>("useNativeKeyboard");

		public bool inputKeepFocusOnComplete => method_2<bool>("inputKeepFocusOnComplete");

		public static uint nextId => MonoClass.smethod_6<uint>(TritonHs.MainAssemblyPath, "", "TextField", "nextId");

		public static TextField instance => MonoClass.smethod_7<TextField>(TritonHs.MainAssemblyPath, "", "TextField", "instance");

		public Rect lastBounds => method_2<Rect>("lastBounds");

		public Vector3 lastTopLeft => method_2<Vector3>("lastTopLeft");

		public Vector3 lastBottomRight => method_2<Vector3>("lastBottomRight");

		public UniversalInputManager.TextInputParams inputParams => method_3<UniversalInputManager.TextInputParams>("inputParams");

		public static Rect KeyboardArea => MonoClass.smethod_14<Rect>(TritonHs.MainAssemblyPath, "", "TextField", "get_KeyboardArea", Array.Empty<object>());

		public bool Active => method_11<bool>("get_Active", Array.Empty<object>());

		public string Text => method_13("get_Text");

		public TextField(IntPtr address, string className)
			: base(address, className)
		{
		}

		public TextField(IntPtr address)
			: this(address, "TextField")
		{
		}

		public static PluginRect Plugin_ActivateTextField(string name, PluginRect bounds, int autocorrect, uint keyboardType, uint returnKeyType)
		{
			return MonoClass.smethod_14<PluginRect>(TritonHs.MainAssemblyPath, "", "TextField", "Plugin_ActivateTextField", new object[5] { name, bounds, autocorrect, keyboardType, returnKeyType });
		}

		public static void Plugin_DeactivateTextField()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "TextField", "Plugin_DeactivateTextField");
		}

		public static void Plugin_SetTextFieldBounds(PluginRect bounds)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TextField", "Plugin_SetTextFieldBounds", bounds);
		}

		public static string Plugin_GetTextFieldText()
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "TextField", "Plugin_GetTextFieldText");
		}

		public static void Plugin_SetTextFieldText(string text)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TextField", "Plugin_SetTextFieldText", text);
		}

		public static void Plugin_SetTextFieldColor(float r, float g, float b, float a)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TextField", "Plugin_SetTextFieldColor", r, g, b, a);
		}

		public static void Plugin_SetTextFieldMaxCharacters(int maxCharacters)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TextField", "Plugin_SetTextFieldMaxCharacters", maxCharacters);
		}

		public static bool UseNativeKeyboard()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "TextField", "UseNativeKeyboard", Array.Empty<object>());
		}

		public static PluginRect ActivateTextField(string name, PluginRect bounds, int autocorrect, uint keyboardType, uint returnKeyType)
		{
			return MonoClass.smethod_14<PluginRect>(TritonHs.MainAssemblyPath, "", "TextField", "ActivateTextField", new object[5] { name, bounds, autocorrect, keyboardType, returnKeyType });
		}

		public static void DeactivateTextField()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "TextField", "DeactivateTextField");
		}

		public static void SetTextFieldBounds(PluginRect bounds)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TextField", "SetTextFieldBounds", bounds);
		}

		public static string GetTextFieldText()
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "TextField", "GetTextFieldText");
		}

		public static void SetTextFieldText(string text)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TextField", "SetTextFieldText", text);
		}

		public static void SetTextFieldColor(float r, float g, float b, float a)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TextField", "SetTextFieldColor", r, g, b, a);
		}

		public static void SetTextFieldMaxCharacters(int maxCharacters)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "TextField", "SetTextFieldMaxCharacters", maxCharacters);
		}

		public new void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Update()
		{
			method_8("Update");
		}

		public void Activate()
		{
			method_8("Activate");
		}

		public void Deactivate()
		{
			method_8("Deactivate");
		}

		public new void OnRelease()
		{
			method_8("OnRelease");
		}

		public void OnChanged(string text)
		{
			method_8("OnChanged", text);
		}

		public void OnSubmitted(string text)
		{
			method_8("OnSubmitted", text);
		}

		public void OnCanceled()
		{
			method_8("OnCanceled");
		}

		public void OnKeyboardAreaChanged(Rect area)
		{
			method_8("OnKeyboardAreaChanged", area);
		}

		public void OnFatalError(FatalErrorMessage message, object userData)
		{
			method_8("OnFatalError", message, userData);
		}

		public void UpdateCollider()
		{
			method_8("UpdateCollider");
		}

		public Rect ComputeBounds()
		{
			return method_11<Rect>("ComputeBounds", Array.Empty<object>());
		}

		public void Unity_TextInputChanged(string text)
		{
			method_8("Unity_TextInputChanged", text);
		}

		public void Unity_TextInputSubmitted(string text)
		{
			method_8("Unity_TextInputSubmitted", text);
		}

		public void Unity_TextInputCanceled(string unused)
		{
			method_8("Unity_TextInputCanceled", unused);
		}

		public void Unity_KeyboardAreaChanged(string rectString)
		{
			method_8("Unity_KeyboardAreaChanged", rectString);
		}

		public void UpdateTextInput()
		{
			method_8("UpdateTextInput");
		}

		public void InputCanceled(bool userRequested, GameObject requester)
		{
			method_8("InputCanceled", userRequested, requester);
		}
	}
}
